現實生活來說,複雜這個概念,對應的是使用負載過高。
而表型會是什麼呢?
有可能是CPU運算負載快速提升、記憶體使用量飆高或是系統結果不斷震盪不收斂。
這裡可以先不考慮Runtime時神經網路的大小(這個有可能會影像到效果),而超參數就是在Runtime運算前所需耗費的資源利用。
超參數包含的東西不少,先從常見的說起吧!
以梯度下降的觀點來看,學習率(Learning Rate)這個東西呢,就是斜率的變化。
斜率的絕對值越大,越容易觸底。
如果能夠快速碰到我們認知的底部(極值區的斜率為零),不就正是我們的目標嗎?
對,但世界上沒有這麼剛好的事情。
極值的出現,通常是一個小範圍。
萬一過頭了,代表出現所謂的觸底反彈。
因此反而造成震盪的不穩定現象。
這部分牽涉到的是效果評估。
一個Batch如果太大,要評估就要等到全部資料做完。
假設一個人口試需要10秒鐘,100個人依序口試後得到平均分數就要超過16個小時了。
而Batch太小,對應來說就有可能每次評量的成績忽高忽低,很難得知是不是學習效果良好。
基於以上觀點,陸續有學者提出超參數使用上的修正。
目前主要以Adam與Ftrl(Follow the regularized leader為常用的方法。